﻿Imports SuporteService
Imports System.Linq
Public Class frmListaChamados
    Inherits DevExpress.XtraEditors.XtraForm

    Private qtdeChamadosInicial As Integer = 10
    Private pagInicial As Integer = 1
    Private chamadoService As New ChamadoService
    Private sistemaService As New SistemaService
    Private listaChamados As List(Of SuporteModel.Chamado)

    Public Sub New(ByRef frmPrincipal As Form)
        InitializeComponent()

    End Sub

    Private Sub frmListaChamados_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'listaChamados = chamadoService.ListarChamado(pagInicial, qtdeChamadosInicial, 1, 1)
        listaChamados = chamadoService.CarregarDadosChamados(chamadoService.ListarChamado(pagInicial, qtdeChamadosInicial, 1, 1))
        'Carregar dados chaamdos
        'For index = 0 To listaChamados.Count
        '    listaChamados(index).Sistema = sistemaService.BuscarSistema(listaChamados(index).Sistema.IdSistema)
        'Next
        gridControlChamados.DataSource = listaChamados
    End Sub

    Private Sub btnAnterior_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnterior.Click

        Dim menorIndice As Integer = listaChamados.Min(Function(x) x.Codigo)

        Dim listaAux As List(Of SuporteModel.Chamado) = chamadoService.CarregarDadosChamados(chamadoService.PreviousListaChamados(menorIndice, cmbQuantidade.SelectedItem, New List(Of SuporteModel.Cliente), New List(Of SuporteModel.Loja), New List(Of SuporteModel.Sistema), Nothing, Nothing, 0, 1, 1, Nothing, Nothing))
        If listaAux.Count < 1 Then
            btnAnterior.Enabled = False
        Else
            btnAnterior.Enabled = True
            btnProximo.Enabled = True
            listaChamados = listaAux
        End If
        gridControlChamados.DataSource = listaChamados
    End Sub

    Private Sub btnProximo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProximo.Click

        Dim maiorIndice As Integer = listaChamados.Max(Function(x) x.Codigo)

        Dim listaAux As List(Of SuporteModel.Chamado) = chamadoService.CarregarDadosChamados(chamadoService.NextListaChamados(maiorIndice, cmbQuantidade.SelectedItem, New List(Of SuporteModel.Cliente), New List(Of SuporteModel.Loja), New List(Of SuporteModel.Sistema), Nothing, Nothing, 0, 1, 1, Nothing, Nothing))
        If listaAux.Count < 1 Then
            btnProximo.Enabled = False
        Else
            btnProximo.Enabled = True
            btnAnterior.Enabled = True
            listaChamados = listaAux
        End If

        gridControlChamados.DataSource = listaChamados
        
    End Sub

    Public Sub AtualizarLista(ByVal parListaChamados As List(Of SuporteModel.Chamado))
        gridControlChamados.DataSource = parListaChamados
    End Sub


End Class